package de.reminder.client.service;

import java.util.List;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import de.reminder.shared.model.*;

/**
 * The client side stub for the RPC service.
 */
@RemoteServiceRelativePath("facebook")
public interface ReminderService extends RemoteService {
	/**
	 * Liefert alle Reminder, die von dem User erstellt wurden
	 * @param user
	 * @return - Liste der Reminder
	 * @throws Exception
	 */
	List<Reminder> getCreatedReminder(FacebookUser user) throws Exception;
	
	/**
	 * Liefert alle Reminder, an die der User erinnert wird.
	 * @param user
	 * @return
	 * @throws Exception
	 */
	List<Reminder> getRelevantReminder(FacebookUser user) throws Exception;
	
	/**
	 * Speichert den Reminder auf der DB
	 * @param r
	 * @throws Exception
	 */
	void saveReminder(Reminder r) throws Exception;
	
	/**
	 * Updatet den Reminder auf der DB
	 * @param r
	 * @throws Exception
	 */
	void updateReminder(Reminder r) throws Exception;
}
